package com.token.sysflow.bean;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import com.token.sql.IntegrateSql;
import com.token.sql.AbstractTableBean;
/**
 * 流程记录
 * @author 代码创建
 */
public class FSysFlowApproveLog extends AbstractTableBean {

	private int SysId; //租户ID
	private String KeyUnid; //单据关联
	private int ActionType; //操作类型
	private String ActionTypeTitle; //操作类型
	private String Approver; //办理人账号ID
	private String ApproverName; //办理人
	private String ApprovDesc; //动作描述
	private String StartTime; //开始办理时间
	private String EndTime; //结束办理时间
	private int ToDoTime; //标准办理时间(h)
	private int LossTime; //消耗时间(分钟)
	private String Options; //办理意见
	private int Status; //状态 0 正常 1超时
	private String FormFlowId; //当前流程
	private String FormStepId; //当前环节
	private String ToFlowId; //目标流程
	private String ToStepId; //目标环节
	private String FormFlowName; //当前流程
	private String FormStepName; //当前环节
	private String ToFlowName; //目标流程
	private String ToStepName; //目标环节

	public static String TABLE_NAME = "F_Sys_FlowApproveLog";
	public static String TABLEKEY_NAME = "ALogId";
	public FSysFlowApproveLog (IntegrateSql f){
		super(f,TABLE_NAME);
		this.setKeyName(TABLEKEY_NAME);
	}

	public FSysFlowApproveLog (IntegrateSql f,ResultSet rs) throws SQLException{
		super(f,TABLE_NAME);
		this.setKeyName(TABLEKEY_NAME);
		this.initParamToRs(rs);
	}

	public FSysFlowApproveLog (IntegrateSql f,String keyValue) throws SQLException{
		super(f,TABLE_NAME);
		this.setKeyName(TABLEKEY_NAME);
		setCodePrepare(selectCodeById().toString());
		prepareSql.setPstValue(1, keyValue);
		ResultSet rs = executeQuery();
		if(rs.next()){
			initParamToRs(rs);
		}else{
			initParam();
		}
		rs.close();
	}

	@Override
	protected void initParam() {
		SysId = 0; //租户ID
		KeyUnid = ""; //单据关联
		ActionType = 0; //操作类型
		ActionTypeTitle = ""; //操作类型
		Approver = ""; //办理人账号ID
		ApproverName = ""; //办理人
		ApprovDesc = ""; //动作描述
		StartTime = ""; //开始办理时间
		EndTime = ""; //结束办理时间
		ToDoTime = 0; //标准办理时间(h)
		LossTime = 0; //消耗时间(分钟)
		Options = ""; //办理意见
		Status = 0; //状态 0 正常 1超时
		FormFlowId = ""; //当前流程
		FormStepId = ""; //当前环节
		ToFlowId = ""; //目标流程
		ToStepId = ""; //目标环节
		FormFlowName = ""; //当前流程
		FormStepName = ""; //当前环节
		ToFlowName = ""; //目标流程
		ToStepName = ""; //目标环节
	}


	public void initParamToRs(ResultSet rs) throws SQLException{
		SysId = rs.getInt("SysId"); //租户ID
		KeyUnid = rs.getString("KeyUnid"); //单据关联
		ActionType = rs.getInt("ActionType"); //操作类型
		ActionTypeTitle = rs.getString("ActionTypeTitle"); //操作类型
		Approver = rs.getString("Approver"); //办理人账号ID
		ApproverName = rs.getString("ApproverName"); //办理人
		ApprovDesc = rs.getString("ApprovDesc"); //动作描述
		StartTime = rs.getString("StartTime"); //开始办理时间
		EndTime = rs.getString("EndTime"); //结束办理时间
		ToDoTime = rs.getInt("ToDoTime"); //标准办理时间(h)
		LossTime = rs.getInt("LossTime"); //消耗时间(分钟)
		Options = rs.getString("Options"); //办理意见
		Status = rs.getInt("Status"); //状态 0 正常 1超时
		FormFlowId = rs.getString("FormFlowId"); //当前流程
		FormStepId = rs.getString("FormStepId"); //当前环节
		ToFlowId = rs.getString("ToFlowId"); //目标流程
		ToStepId = rs.getString("ToStepId"); //目标环节
		FormFlowName = rs.getString("FormFlowName"); //当前流程
		FormStepName = rs.getString("FormStepName"); //当前环节
		ToFlowName = rs.getString("ToFlowName"); //目标流程
		ToStepName = rs.getString("ToStepName"); //目标环节
		this.setKeyId(rs.getString("ALogId"));
	}


	@Override
	protected int appendData() throws SQLException {
		int i = 1;
		prepareSql.setPstValue(i++,SysId); //租户ID
		prepareSql.setPstValue(i++,KeyUnid); //单据关联
		prepareSql.setPstValue(i++,ActionType); //操作类型
		prepareSql.setPstValue(i++,ActionTypeTitle); //操作类型
		prepareSql.setPstValue(i++,Approver); //办理人账号ID
		prepareSql.setPstValue(i++,ApproverName); //办理人
		prepareSql.setPstValue(i++,ApprovDesc); //动作描述
		prepareSql.setPstValue(i++,StartTime); //开始办理时间
		prepareSql.setPstValue(i++,EndTime); //结束办理时间
		prepareSql.setPstValue(i++,ToDoTime); //标准办理时间(h)
		prepareSql.setPstValue(i++,LossTime); //消耗时间(分钟)
		prepareSql.setPstValue(i++,Options); //办理意见
		prepareSql.setPstValue(i++,Status); //状态 0 正常 1超时
		prepareSql.setPstValue(i++,FormFlowId); //当前流程
		prepareSql.setPstValue(i++,FormStepId); //当前环节
		prepareSql.setPstValue(i++,ToFlowId); //目标流程
		prepareSql.setPstValue(i++,ToStepId); //目标环节
		prepareSql.setPstValue(i++,FormFlowName); //当前流程
		prepareSql.setPstValue(i++,FormStepName); //当前环节
		prepareSql.setPstValue(i++,ToFlowName); //目标流程
		prepareSql.setPstValue(i++,ToStepName); //目标环节
		return i;
	}


	@Override
	public Vector<String> getFields() {
		Vector<String> vec = new Vector<String>();
		vec.addElement("SysId"); //租户ID
		vec.addElement("KeyUnid"); //单据关联
		vec.addElement("ActionType"); //操作类型
		vec.addElement("ActionTypeTitle"); //操作类型
		vec.addElement("Approver"); //办理人账号ID
		vec.addElement("ApproverName"); //办理人
		vec.addElement("ApprovDesc"); //动作描述
		vec.addElement("StartTime"); //开始办理时间
		vec.addElement("EndTime"); //结束办理时间
		vec.addElement("ToDoTime"); //标准办理时间(h)
		vec.addElement("LossTime"); //消耗时间(分钟)
		vec.addElement("Options"); //办理意见
		vec.addElement("Status"); //状态 0 正常 1超时
		vec.addElement("FormFlowId"); //当前流程
		vec.addElement("FormStepId"); //当前环节
		vec.addElement("ToFlowId"); //目标流程
		vec.addElement("ToStepId"); //目标环节
		vec.addElement("FormFlowName"); //当前流程
		vec.addElement("FormStepName"); //当前环节
		vec.addElement("ToFlowName"); //目标流程
		vec.addElement("ToStepName"); //目标环节
		return vec;
	}


	/**
	 * 设置租户ID
	 * @param sysid 租户ID
	 */
	public void setSysId(int sysid){
		SysId = sysid;
	}
	/**
	 * 获取SysId
	 * @return 租户ID
	 */
	public int getSysId(){
		return SysId;
	}

	/**
	 * 设置单据关联
	 * @param keyunid 单据关联
	 */
	public void setKeyUnid(String keyunid){
		KeyUnid = keyunid;
	}
	/**
	 * 获取KeyUnid
	 * @return 单据关联
	 */
	public String getKeyUnid(){
		return KeyUnid;
	}

	/**
	 * 设置操作类型
	 * @param actiontype 操作类型
	 */
	public void setActionType(int actiontype){
		ActionType = actiontype;
	}
	/**
	 * 获取ActionType
	 * @return 操作类型
	 */
	public int getActionType(){
		return ActionType;
	}

	/**
	 * 设置操作类型
	 * @param actiontypetitle 操作类型
	 */
	public void setActionTypeTitle(String actiontypetitle){
		ActionTypeTitle = actiontypetitle;
	}
	/**
	 * 获取ActionTypeTitle
	 * @return 操作类型
	 */
	public String getActionTypeTitle(){
		return ActionTypeTitle;
	}

	/**
	 * 设置办理人账号ID
	 * @param approver 办理人账号ID
	 */
	public void setApprover(String approver){
		Approver = approver;
	}
	/**
	 * 获取Approver
	 * @return 办理人账号ID
	 */
	public String getApprover(){
		return Approver;
	}

	/**
	 * 设置办理人
	 * @param approvername 办理人
	 */
	public void setApproverName(String approvername){
		ApproverName = approvername;
	}
	/**
	 * 获取ApproverName
	 * @return 办理人
	 */
	public String getApproverName(){
		return ApproverName;
	}

	/**
	 * 设置动作描述
	 * @param approvdesc 动作描述
	 */
	public void setApprovDesc(String approvdesc){
		ApprovDesc = approvdesc;
	}
	/**
	 * 获取ApprovDesc
	 * @return 动作描述
	 */
	public String getApprovDesc(){
		return ApprovDesc;
	}

	/**
	 * 设置开始办理时间
	 * @param starttime 开始办理时间
	 */
	public void setStartTime(String starttime){
		StartTime = starttime;
	}
	/**
	 * 获取StartTime
	 * @return 开始办理时间
	 */
	public String getStartTime(){
		return StartTime;
	}

	/**
	 * 设置结束办理时间
	 * @param endtime 结束办理时间
	 */
	public void setEndTime(String endtime){
		EndTime = endtime;
	}
	/**
	 * 获取EndTime
	 * @return 结束办理时间
	 */
	public String getEndTime(){
		return EndTime;
	}

	/**
	 * 设置标准办理时间(h)
	 * @param todotime 标准办理时间(h)
	 */
	public void setToDoTime(int todotime){
		ToDoTime = todotime;
	}
	/**
	 * 获取ToDoTime
	 * @return 标准办理时间(h)
	 */
	public int getToDoTime(){
		return ToDoTime;
	}

	/**
	 * 设置消耗时间(分钟)
	 * @param losstime 消耗时间(分钟)
	 */
	public void setLossTime(int losstime){
		LossTime = losstime;
	}
	/**
	 * 获取LossTime
	 * @return 消耗时间(分钟)
	 */
	public int getLossTime(){
		return LossTime;
	}

	/**
	 * 设置办理意见
	 * @param options 办理意见
	 */
	public void setOptions(String options){
		Options = options;
	}
	/**
	 * 获取Options
	 * @return 办理意见
	 */
	public String getOptions(){
		return Options;
	}

	/**
	 * 设置状态 0 正常 1超时
	 * @param status 状态 0 正常 1超时
	 */
	public void setStatus(int status){
		Status = status;
	}
	/**
	 * 获取Status
	 * @return 状态 0 正常 1超时
	 */
	public int getStatus(){
		return Status;
	}

	/**
	 * 设置当前流程
	 * @param formflowid 当前流程
	 */
	public void setFormFlowId(String formflowid){
		FormFlowId = formflowid;
	}
	/**
	 * 获取FormFlowId
	 * @return 当前流程
	 */
	public String getFormFlowId(){
		return FormFlowId;
	}

	/**
	 * 设置当前环节
	 * @param formstepid 当前环节
	 */
	public void setFormStepId(String formstepid){
		FormStepId = formstepid;
	}
	/**
	 * 获取FormStepId
	 * @return 当前环节
	 */
	public String getFormStepId(){
		return FormStepId;
	}

	/**
	 * 设置目标流程
	 * @param toflowid 目标流程
	 */
	public void setToFlowId(String toflowid){
		ToFlowId = toflowid;
	}
	/**
	 * 获取ToFlowId
	 * @return 目标流程
	 */
	public String getToFlowId(){
		return ToFlowId;
	}

	/**
	 * 设置目标环节
	 * @param tostepid 目标环节
	 */
	public void setToStepId(String tostepid){
		ToStepId = tostepid;
	}
	/**
	 * 获取ToStepId
	 * @return 目标环节
	 */
	public String getToStepId(){
		return ToStepId;
	}

	/**
	 * 设置当前流程
	 * @param formflowname 当前流程
	 */
	public void setFormFlowName(String formflowname){
		FormFlowName = formflowname;
	}
	/**
	 * 获取FormFlowName
	 * @return 当前流程
	 */
	public String getFormFlowName(){
		return FormFlowName;
	}

	/**
	 * 设置当前环节
	 * @param formstepname 当前环节
	 */
	public void setFormStepName(String formstepname){
		FormStepName = formstepname;
	}
	/**
	 * 获取FormStepName
	 * @return 当前环节
	 */
	public String getFormStepName(){
		return FormStepName;
	}

	/**
	 * 设置目标流程
	 * @param toflowname 目标流程
	 */
	public void setToFlowName(String toflowname){
		ToFlowName = toflowname;
	}
	/**
	 * 获取ToFlowName
	 * @return 目标流程
	 */
	public String getToFlowName(){
		return ToFlowName;
	}

	/**
	 * 设置目标环节
	 * @param tostepname 目标环节
	 */
	public void setToStepName(String tostepname){
		ToStepName = tostepname;
	}
	/**
	 * 获取ToStepName
	 * @return 目标环节
	 */
	public String getToStepName(){
		return ToStepName;
	}

}
